<?php
class TopicosController extends AppController {

	var $name = 'Topicos';
	var $helpers = array('Html', 'Form');
	
	function beforeFilter() {
		parent::beforeFilter(); 
		$this->Auth->allowedActions = array('index');
	}
	
/*Accedida por todos*/	
/*Lita los topicos en base a un tema*/
	function index($id = null) {
	/*	if (!$id) {
			$this->Session->setFlash(__('Topico invalido', true));
			$this->redirect(array('controller'=> 'temas','action'=>'index'));
		}*/
		$tema = $this->Topico->Tema->find('first', array('conditions' => array('Tema.tema =' => $id)));
		$topicos = $this->paginate('Topico', array('Topico.tema_id =' => $id));
		//print_r($tema);
		if (!$tema) {
			$this->Session->setFlash(__('Tema invalido', true));
			$this->redirect(array('controller'=> 'temas','action'=>'index'));
		}
		//$this->set('cantPosts',$this->Topico->cantPostsTodosTopicos($id));
		$this->set('grupo_id', $this->Auth->user('grupo_id'));//el grupo del user
		$this->set('topicos', $topicos);// todos los topicos relacionados con el tema
		$this->set('tema', $tema['Tema']); //se envia la fila tema relacionado con el topico
	}

/*
	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid Topico.', true));
			$this->redirect(array('action'=>'index'));
		}
		
		$this->set('topico', $this->Topico->read(null, $id));
		
	}*/
	
/*A partir de Trial*/
/*Agregar un topico. recibe como parametro el id del tema*/
	function add($temaid = null) {
		if(!$this->Auth->user()){
			$this->Session->setFlash(__('Para agregar topicos es necesario loguearse', true));
			$this->redirect(array('action'=>'index',$temaid));
		}
		if($this->Auth->user('grupo_id') > 3){ //Si el usuario es trial o premium
			$this->Session->setFlash(__('Solo un usuario Trial , Premium o Administrador puede crear nuevos topicos', true));
			$this->redirect(array('action'=>'index',$temaid));
		}
		$elTema=$this->Topico->Tema->findByTema($temaid);
		//print_r($elTema);
		if(!$elTema && empty($this->data)){ //si no existe el tema, y no se completo el formulario
			$this->Session->setFlash(__('El tema no existe.', true));
			$this->redirect(array('controller' => 'temas','action'=>'index'));
		}
		if (!empty($this->data)) {//si se completo el formulario
			//$this->data['Topico']['tema_id']=$temaid;
			$this->data['Topico']['user_id']=$this->Auth->user('user');
			$this->Topico->create();
			if ($this->Topico->save($this->data)) {
				$this->Session->setFlash(__('El topico ha sido guardado', true));
				$this->redirect(array('action'=>'index', $this->data['Topico']['tema_id']));
			} else {
				$this->Session->setFlash(__('El topico no pudo ser guardado. Por favor intente de vuelta', true));
			}
		}
		$this->set('elTema',$elTema['Tema']);
	}

/*Solo el administrador puede modificar*/
	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Topico Invalido', true));
			$this->redirect(array('action'=>'index'));
		}
		if (!empty($this->data)) {
			if ($this->Topico->save($this->data)) {
				$this->Session->setFlash(__('El Topico ha sido guardado', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('El Topico no pudo ser guardado. Por favor, intente de vuelta.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Topico->read(null, $id);
		}
		$users = $this->Topico->User->find('list');
		$temas = $this->Topico->Tema->find('list');
		$this->set(compact('users','temas'));
	}
	
/*Solo el administrador puede eliminar un topico*/
	function delete($id = null, $temaId = null) {
		if (!$id) {
			$this->Session->setFlash(__('Id invalido para este Topico', true));
			$this->redirect(array('action'=>'index',$temaId));
		}
		if ($this->Topico->del($id)) {
			$this->Session->setFlash(__('Topico borrado', true));
			$this->redirect(array('action'=>'index',$temaId));
		}
	}

}
?>